home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / share / hal / fdi / policy / 10osvendor / 20-storage-methods.fdi < prev    next >
Encoding:
Extensible Markup Language  |  2009-07-05  |  18.5 KB  |  326 lines

  1. <?xml version="1.0" encoding="UTF-8"?>
  2.  
  3. <deviceinfo version="0.2">
  4.   <device>
  5.     <match key="info.udi" string="/org/freedesktop/Hal/devices/computer">
  6.       <append key="info.callouts.add" type="strlist">hal-storage-cleanup-all-mountpoints</append>
  7.     </match>
  8.  
  9.     <!-- poll drives with removable media -->
  10.     <match key="storage.removable" bool="true">
  11.       <append key="info.addons" type="strlist">hald-addon-storage</append>
  12.     </match>
  13.  
  14.     <match key="volume.is_disc" bool="true">
  15.       <match key="volume.disc.has_audio" bool="true">
  16.         <append key="info.interfaces" type="strlist">org.freedesktop.Hal.Device.Volume</append>
  17.         <append key="org.freedesktop.Hal.Device.Volume.method_names" type="strlist">Eject</append>
  18.         <append key="org.freedesktop.Hal.Device.Volume.method_signatures" type="strlist">as</append>
  19.     <append key="org.freedesktop.Hal.Device.Volume.method_argnames" type="strlist">extra_options</append>
  20.         <append key="org.freedesktop.Hal.Device.Volume.method_execpaths" type="strlist">hal-storage-eject</append>
  21.       </match>
  22.       <match key="volume.disc.is_blank" bool="true">
  23.         <append key="info.interfaces" type="strlist">org.freedesktop.Hal.Device.Volume</append>
  24.         <append key="org.freedesktop.Hal.Device.Volume.method_names" type="strlist">Eject</append>
  25.         <append key="org.freedesktop.Hal.Device.Volume.method_signatures" type="strlist">as</append>
  26.     <append key="org.freedesktop.Hal.Device.Volume.method_argnames" type="strlist">extra_options</append>
  27.         <append key="org.freedesktop.Hal.Device.Volume.method_execpaths" type="strlist">hal-storage-eject</append>
  28.       </match>
  29.     </match>
  30.  
  31.     <!-- this is to be able to mount media in drives we cannot poll, e.g. IDE Zip Drives and PC style floppy drives -->
  32.     <match key="storage.media_check_enabled" bool="false">
  33.       <match key="storage.no_partitions_hint" bool="true">
  34.  
  35.         <append key="info.interfaces" type="strlist">org.freedesktop.Hal.Device.Volume</append>
  36.  
  37.         <append key="org.freedesktop.Hal.Device.Volume.method_names" type="strlist">Mount</append>
  38.         <append key="org.freedesktop.Hal.Device.Volume.method_signatures" type="strlist">ssas</append>
  39.     <append key="org.freedesktop.Hal.Device.Volume.method_argnames" type="strlist">mount_point fstype extra_options</append>
  40.         <append key="org.freedesktop.Hal.Device.Volume.method_execpaths" type="strlist">hal-storage-mount</append>
  41.  
  42.         <append key="org.freedesktop.Hal.Device.Volume.method_names" type="strlist">Unmount</append>
  43.         <append key="org.freedesktop.Hal.Device.Volume.method_signatures" type="strlist">as</append>
  44.     <append key="org.freedesktop.Hal.Device.Volume.method_argnames" type="strlist">extra_options</append>
  45.         <append key="org.freedesktop.Hal.Device.Volume.method_execpaths" type="strlist">hal-storage-unmount</append>
  46.  
  47.         <append key="org.freedesktop.Hal.Device.Volume.method_names" type="strlist">Eject</append>
  48.         <append key="org.freedesktop.Hal.Device.Volume.method_signatures" type="strlist">as</append>
  49.     <append key="org.freedesktop.Hal.Device.Volume.method_argnames" type="strlist">extra_options</append>
  50.         <append key="org.freedesktop.Hal.Device.Volume.method_execpaths" type="strlist">hal-storage-eject</append>
  51.  
  52.         <!-- allow these mount options for all file systems -->
  53.     <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" string="Linux">
  54.           <append key="volume.mount.valid_options" type="strlist">ro</append>
  55.           <append key="volume.mount.valid_options" type="strlist">sync</append>
  56.           <append key="volume.mount.valid_options" type="strlist">dirsync</append>
  57.           <append key="volume.mount.valid_options" type="strlist">noatime</append>
  58.           <append key="volume.mount.valid_options" type="strlist">nodiratime</append>
  59.           <append key="volume.mount.valid_options" type="strlist">noexec</append>
  60.           <append key="volume.mount.valid_options" type="strlist">quiet</append>
  61.           <append key="volume.mount.valid_options" type="strlist">remount</append>
  62.       <append key="volume.mount.valid_options" type="strlist">exec</append>
  63.           <!-- As this is removable media give some leeway -->
  64.       <append key="volume.mount.valid_options" type="strlist">utf8</append>
  65.       <append key="volume.mount.valid_options" type="strlist">shortname=</append>
  66.       <append key="volume.mount.valid_options" type="strlist">codepage=</append>
  67.       <append key="volume.mount.valid_options" type="strlist">iocharset=</append>
  68.       <append key="volume.mount.valid_options" type="strlist">umask=</append>
  69.       <append key="volume.mount.valid_options" type="strlist">uid=</append>
  70.     </match>
  71.     <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" string="FreeBSD">
  72.       <append key="volume.mount.valid_options" type="strlist">ro</append>
  73.       <append key="volume.mount.valid_options" type="strlist">noexec</append>
  74.       <append key="volume.mount.valid_options" type="strlist">noatime</append>
  75.     </match>
  76.       </match>
  77.     </match>
  78.  
  79.  
  80.     <match key="volume.fsusage" string="filesystem">
  81.  
  82.       <!-- Here follow volumes we specifically want to ignore - it is the -->
  83.       <!-- responsibility of software higher in the stack (e.g. gnome-vfs) -->
  84.       <!-- amd mount programs (e.g. Mount() on HAL) to respect volume.ignore -->
  85.       <merge key="volume.ignore" type="bool">false</merge>
  86.  
  87.       <!-- Should always ignore Apple Bootstrap partitions (it would be -->
  88.       <!-- a security hole to mount it) - TODO: should use the bootable -->
  89.       <!-- flag from the Mac partition table instead -->
  90.       <match key="volume.fstype" string="hfs">
  91.     <match key="volume.label" string="bootstrap">
  92.           <merge key="volume.ignore" type="bool">true</merge>
  93.     </match>
  94.       </match>
  95.  
  96.       <!-- EFI firmware partitions -->
  97.       <match key="volume.fstype" string="vfat">
  98.     <match key="volume.label" string="EFI">
  99.       <merge key="volume.ignore" type="bool">true</merge>
  100.     </match>
  101.       </match>
  102.  
  103.       <match key="volume.fstype" string_outof="ntfs;vfat">
  104.         <match key="volume.label" string="RECOVERY">
  105.           <merge key="volume.ignore" type="bool">true</merge>
  106.         </match>
  107.         <!-- ASUS ships some desktop with a recovery partition -->
  108.     <match key="volume.label" string="PQSERVICE">
  109.       <merge key="volume.ignore" type="bool">true</merge>
  110.     </match>
  111.         <!-- HP ships desktops with a recovery partition -->
  112.     <match key="volume.label" string="HP_RECOVERY">
  113.       <merge key="volume.ignore" type="bool">true</merge>
  114.     </match>
  115.         <!-- Sony ships laptops with a recovery partition -->
  116.     <match key="volume.label" string="Recovery Partition">
  117.       <merge key="volume.ignore" type="bool">true</merge>
  118.     </match>
  119.         <!-- DELL ships some laptops with a visible recovery partition -->
  120.     <match key="volume.label" string_outof="DellUtility;DellRestore">
  121.       <merge key="volume.ignore" type="bool">true</merge>
  122.     </match>
  123.         <!-- Lenovo and IBM ship with a various recovery partitions -->
  124.     <match key="volume.label" string_outof="IBM_SERVICE;SERVICEV001;SERVICEV002">
  125.       <merge key="volume.ignore" type="bool">true</merge>
  126.     </match>
  127.       </match>
  128.  
  129.       <append key="info.interfaces" type="strlist">org.freedesktop.Hal.Device.Volume</append>
  130.  
  131.       <append key="org.freedesktop.Hal.Device.Volume.method_names" type="strlist">Mount</append>
  132.       <append key="org.freedesktop.Hal.Device.Volume.method_signatures" type="strlist">ssas</append>
  133.       <append key="org.freedesktop.Hal.Device.Volume.method_argnames" type="strlist">mount_point fstype extra_options</append>
  134.       <append key="org.freedesktop.Hal.Device.Volume.method_execpaths" type="strlist">hal-storage-mount</append>
  135.  
  136.       <append key="org.freedesktop.Hal.Device.Volume.method_names" type="strlist">Unmount</append>
  137.       <append key="org.freedesktop.Hal.Device.Volume.method_signatures" type="strlist">as</append>
  138.       <append key="org.freedesktop.Hal.Device.Volume.method_argnames" type="strlist">extra_options</append>
  139.       <append key="org.freedesktop.Hal.Device.Volume.method_execpaths" type="strlist">hal-storage-unmount</append>
  140.  
  141.       <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" string="Linux">
  142.         <match key="volume.linux.is_device_mapper" bool="false">
  143.           <append key="org.freedesktop.Hal.Device.Volume.method_names" type="strlist">Eject</append>
  144.           <append key="org.freedesktop.Hal.Device.Volume.method_signatures" type="strlist">as</append>
  145.           <append key="org.freedesktop.Hal.Device.Volume.method_argnames" type="strlist">extra_options</append>
  146.           <append key="org.freedesktop.Hal.Device.Volume.method_execpaths" type="strlist">hal-storage-eject</append>
  147.         </match>
  148.       </match>
  149.  
  150.       <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" string="FreeBSD">
  151.         <append key="org.freedesktop.Hal.Device.Volume.method_names" type="strlist">Eject</append>
  152.     <append key="org.freedesktop.Hal.Device.Volume.method_signatures" type="strlist">as</append>
  153.     <append key="org.freedesktop.Hal.Device.Volume.method_argnames" type="strlist">extra_options</append>
  154.     <append key="org.freedesktop.Hal.Device.Volume.method_execpaths" type="strlist">hal-storage-eject</append>
  155.       </match>
  156.  
  157.       <!-- allow these mount options for all file systems -->
  158.       <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" string="Linux">
  159.         <append key="volume.mount.valid_options" type="strlist">ro</append>
  160.         <append key="volume.mount.valid_options" type="strlist">sync</append>
  161.         <append key="volume.mount.valid_options" type="strlist">dirsync</append>
  162.         <append key="volume.mount.valid_options" type="strlist">noatime</append>
  163.         <append key="volume.mount.valid_options" type="strlist">nodiratime</append>
  164.         <append key="volume.mount.valid_options" type="strlist">noexec</append>
  165.         <append key="volume.mount.valid_options" type="strlist">quiet</append>
  166.         <append key="volume.mount.valid_options" type="strlist">remount</append>
  167.         <append key="volume.mount.valid_options" type="strlist">exec</append>
  168.       </match>
  169.       <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" string="FreeBSD">
  170.         <append key="volume.mount.valid_options" type="strlist">ro</append>
  171.     <append key="volume.mount.valid_options" type="strlist">noexec</append>
  172.     <append key="volume.mount.valid_options" type="strlist">noatime</append>
  173.       </match>
  174.  
  175.       <!-- allow these mount options for vfat -->
  176.       <match key="volume.fstype" string="vfat">
  177.     <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" string="Linux">
  178.       <append key="volume.mount.valid_options" type="strlist">utf8</append>
  179.       <append key="volume.mount.valid_options" type="strlist">shortname=</append>
  180.       <append key="volume.mount.valid_options" type="strlist">codepage=</append>
  181.       <append key="volume.mount.valid_options" type="strlist">iocharset=</append>
  182.       <append key="volume.mount.valid_options" type="strlist">umask=</append>
  183.       <append key="volume.mount.valid_options" type="strlist">dmask=</append>
  184.       <append key="volume.mount.valid_options" type="strlist">fmask=</append>
  185.       <append key="volume.mount.valid_options" type="strlist">uid=</append>
  186.       <append key="volume.mount.valid_options" type="strlist">flush</append>
  187.     </match>
  188.     <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" string="FreeBSD">
  189.       <append key="volume.mount.valid_options" type="strlist">longnames</append>
  190.       <append key="volume.mount.valid_options" type="strlist">shortnames</append>
  191.       <append key="volume.mount.valid_options" type="strlist">nowin95</append>
  192.       <append key="volume.mount.valid_options" type="strlist">-u=</append>
  193.       <append key="volume.mount.valid_options" type="strlist">-g=</append>
  194.       <append key="volume.mount.valid_options" type="strlist">-m=</append>
  195.       <append key="volume.mount.valid_options" type="strlist">-M=</append>
  196.       <append key="volume.mount.valid_options" type="strlist">-L=</append>
  197.       <append key="volume.mount.valid_options" type="strlist">-D=</append>
  198.       <append key="volume.mount.valid_options" type="strlist">large</append>
  199.     </match>
  200.       </match>
  201.  
  202.  
  203.       <!-- allow these mount options for hfs -->
  204.       <match key="volume.fstype" string="hfs">
  205.     <append key="volume.mount.valid_options" type="strlist">gid=</append>
  206.     <append key="volume.mount.valid_options" type="strlist">uid=</append>
  207.     <append key="volume.mount.valid_options" type="strlist">force</append>
  208.       </match>
  209.  
  210.       <!-- allow these mount options for hfsplus -->
  211.       <match key="volume.fstype" string="hfsplus">
  212.     <append key="volume.mount.valid_options" type="strlist">force</append>
  213.       </match>
  214.  
  215.       <!-- allow these mount options for ntfs -->
  216.       <match key="volume.fstype" string="ntfs">
  217.     <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" string="Linux">
  218.       <append key="volume.mount.valid_options" type="strlist">uid=</append>
  219.       <append key="volume.mount.valid_options" type="strlist">gid=</append>
  220.       <append key="volume.mount.valid_options" type="strlist">umask=</append>
  221.       <append key="volume.mount.valid_options" type="strlist">utf8</append>
  222.     </match>
  223.     <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" string="FreeBSD">
  224.       <append key="volume.mount.valid_options" type="strlist">-u=</append>
  225.       <append key="volume.mount.valid_options" type="strlist">-g=</append>
  226.       <append key="volume.mount.valid_options" type="strlist">-m=</append>
  227.       <append key="volume.mount.valid_options" type="strlist">-a</append>
  228.       <append key="volume.mount.valid_options" type="strlist">-i</append>
  229.       <append key="volume.mount.valid_options" type="strlist">-C=</append>
  230.       <append key="volume.mount.valid_options" type="strlist">-W=</append>
  231.     </match>
  232.       </match>
  233.  
  234.       <!-- allow these mount options for ext3 -->
  235.       <match key="volume.fstype" string="ext3">
  236.     <append key="volume.mount.valid_options" type="strlist">acl</append>
  237.     <append key="volume.mount.valid_options" type="strlist">user_xattr</append>
  238.     <append key="volume.mount.valid_options" type="strlist">data=</append>
  239.       </match>
  240.  
  241.       <!-- allow these mount options for ext2 -->
  242.       <match key="volume.fstype" string="ext2">
  243.     <append key="volume.mount.valid_options" type="strlist">acl</append>
  244.     <append key="volume.mount.valid_options" type="strlist">user_xattr</append>
  245.       </match>
  246.  
  247.       <!-- allow these mount options for reiserfs -->
  248.       <match key="volume.fstype" string="reiserfs">
  249.     <append key="volume.mount.valid_options" type="strlist">acl</append>
  250.     <append key="volume.mount.valid_options" type="strlist">user_xattr</append>
  251.       </match>
  252.  
  253.       <!-- allow these mount options for ufs -->
  254.       <match key="volume.fstype" string="ufs">
  255.     <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" string="Linux">
  256.       <append key="volume.mount.valid_options" type="strlist">ufstype=</append>
  257.     </match>
  258.       </match>
  259.  
  260.       <!-- udf -->
  261.       <match key="volume.fstype" string="udf">
  262.     <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" string="Linux">
  263.       <append key="volume.mount.valid_options" type="strlist">uid=</append>
  264.       <append key="volume.mount.valid_options" type="strlist">umask=</append>
  265.     </match>
  266.     <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" string="FreeBSD">
  267.       <append key="volume.mount.valid_options" type="strlist">-C=</append>
  268.       <append key="volume.mount.valid_options" type="strlist">-v</append>
  269.     </match>
  270.       </match>
  271.  
  272.       <!-- iso9660 -->
  273.       <match key="volume.fstype" string="iso9660">
  274.     <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" string="Linux">
  275.       <append key="volume.mount.valid_options" type="strlist">utf8</append>
  276.       <append key="volume.mount.valid_options" type="strlist">uid=</append>
  277.       <append key="volume.mount.valid_options" type="strlist">mode=</append>
  278.       <append key="volume.mount.valid_options" type="strlist">iocharset=</append>
  279.     </match>
  280.     <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" string="FreeBSD">
  281.       <append key="volume.mount.valid_options" type="strlist">extatt</append>
  282.       <append key="volume.mount.valid_options" type="strlist">gens</append>
  283.       <append key="volume.mount.valid_options" type="strlist">nojoliet</append>
  284.       <append key="volume.mount.valid_options" type="strlist">norrip</append>
  285.       <append key="volume.mount.valid_options" type="strlist">nostrictjoliet</append>
  286.       <append key="volume.mount.valid_options" type="strlist">-s=</append>
  287.       <append key="volume.mount.valid_options" type="strlist">-C=</append>
  288.       <append key="volume.mount.valid_options" type="strlist">-v</append>
  289.     </match>
  290.       </match>
  291.  
  292.       <!-- allow these unmount options -->
  293.       <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" string="Linux">
  294.         <append key="volume.unmount.valid_options" type="strlist">lazy</append>
  295.       </match>
  296.  
  297.     </match>
  298.  
  299.     <!-- make sure we export Eject on discs where we don't recognize the file system -->
  300.     <match key="volume.is_disc" bool="true">
  301.       <match key="volume.fsusage" string="">
  302.         <append key="info.interfaces" type="strlist">org.freedesktop.Hal.Device.Volume</append>
  303.         <append key="org.freedesktop.Hal.Device.Volume.method_names" type="strlist">Eject</append>
  304.         <append key="org.freedesktop.Hal.Device.Volume.method_signatures" type="strlist">as</append>
  305.     <append key="org.freedesktop.Hal.Device.Volume.method_argnames" type="strlist">extra_options</append>
  306.         <append key="org.freedesktop.Hal.Device.Volume.method_execpaths" type="strlist">hal-storage-eject</append>
  307.       </match>
  308.     </match>
  309.  
  310.     <match key="storage.requires_eject" bool="true">
  311.         <!-- storage Eject causes eject on each volume on this storage -->
  312.         <append key="info.interfaces" type="strlist">org.freedesktop.Hal.Device.Storage</append>
  313.         <append key="org.freedesktop.Hal.Device.Storage.method_names" type="strlist">Eject</append>
  314.         <append key="org.freedesktop.Hal.Device.Storage.method_signatures" type="strlist">as</append>
  315.     <append key="org.freedesktop.Hal.Device.Storage.method_argnames" type="strlist">extra_options</append>
  316.         <append key="org.freedesktop.Hal.Device.Storage.method_execpaths" type="strlist">hal-storage-eject</append>
  317.  
  318.         <append key="info.interfaces" type="strlist">org.freedesktop.Hal.Device.Storage</append>
  319.         <append key="org.freedesktop.Hal.Device.Storage.method_names" type="strlist">CloseTray</append>
  320.         <append key="org.freedesktop.Hal.Device.Storage.method_signatures" type="strlist">as</append>
  321.     <append key="org.freedesktop.Hal.Device.Storage.method_argnames" type="strlist">extra_options</append>
  322.         <append key="org.freedesktop.Hal.Device.Storage.method_execpaths" type="strlist">hal-storage-closetray</append>
  323.     </match>
  324.   </device>
  325. </deviceinfo>
  326.